The invention relates to bus arbitration, such as arbitration on a local bus, for example.
Referring to FIG. 1, a typical computer system 8 may include a local bus 16 that may be owned for a particular bus operation by one of several bus agents. Because only one bus agent may own the local bus 16 at any particular time, the computer system 8 may use an arbitration scheme to determine which bus agent is granted ownership of the local bus 16 for the scenario in which multiple bus agents concurrently request ownership of the local bus 16. In this manner, the arbitration scheme may classify a particular bus agent as being either a priority bus agent 14 (a system controller, for example) or a symmetrical bus agent (processors 12a, 12b, 12c and 12d, as examples).
The symmetrical bus agents have the same priority level, and if multiple bus agents request ownership of the local bus 16 for the next bus operation, then the arbitration scheme awards ownership of the local bus 16 to the bus agent that has least recently used the local bus 16. To accomplish the above-described arbitration scheme, the local bus 16 may include bus request lines 17 that communicate bus request signals (called BREQ0#, BREQ1#, BREQ2# and BREQ3#, as examples), each of which may be driven by a different one of the processors 12 to request ownership of the local bus 16.
The priority bus agent asserts a signal (called BPRI#) to request ownership of the local bus 16. As its name implies, the priority agent 14 has a higher priority level than the symmetrical agents. Thus, if a symmetrical agent and the priority agent 14 concurrently request ownership of the local bus 16, the arbitration scheme ensures that the priority agent 14 is granted ownership of the local bus 16.
A difficulty with the above-described arrangement is that the priority agent 14 may become effectively parked on the local bus 16 and consume a substantial amount of the available bandwidth of the local bus 16. As a result, the symmetrical agents may be deprived from adequate use of the local bus 16.
Thus, there is a continuing need for an arrangement that addresses one or more of the above-stated problems.
In one embodiment of the invention, a method for use with a computer system includes permitting a first bus agent to access a bus during predetermined windows of time and preventing a second bus agent from accessing the bus outside of the windows. The first bus agent has a higher priority than the second bus agent. Use of the bus by the second bus agent is monitored during the windows, and the duration of the windows are selectively regulated based on the use.
In another embodiment, a method for use with computer system includes permitting a first bus agent to access a bus during predetermined windows of time and preventing a second bus agent from accessing the bus outside of the windows. The first bus agent has a lower priority than the second bus agent. The second bus agent is prevented from accessing the bus during the windows, and use of the bus by the first bus agent is monitored during the windows. The durations of the windows are selectively regulated based on the use.
In yet another embodiment, a computer system includes a local bus, a processor that is coupled to the local bus, a system controller that is coupled to the local bus, and a circuit. The system controller has a higher priority than the processor for bus arbitration, and the circuit is adapted to permit the system controller to access the bus during windows of time and prevent the system controller from accessing the bus outside of the windows to permit the processor to access the bus, monitor use of the bus by the system controller during the windows, and selectively regulate the durations of the windows based on the use.